Scroll to navigation

cjpeg(1) General Commands Manual cjpeg(1)

NAZWA

cjpeg - konwersja plików graficznych do formatu JPEG

SKŁADNIA

cjpeg [ opcje ] [ plik ]

OPIS

cjpeg dokonuje kompresji podanego pliku (bądź danych ze standardowego wejścia, jeżeli nie podano nazwy pliku) i zapisuje na standardowym wyjściu plik w formacie JPEG/JFIF. Bieżąca wersja programu obsługuje następujące standardy wejściowych plików graficznych: PPM (format PBMPLUS color), PGM (format PBMPLUS w skali szarości), BMP, Targa, and RLE (format Utah Raster Toolkit). (RLE tylko w wypadku, gdy zainstalowana jest biblioteka URT).

OPCJE

Wszystkie nazwy opcji mogą być skracane, np. -grayscale może być zapisana jako -gray lub -gr. Większość "podstawowych" opcji może być skrócona nawet do jednej litery. Wielkie i małe litery w nazwach opcji nie są rozróżniane (np. -BMP jest równoważne z -bmp). Akceptowana jest też brytyjska pisownia niektórych opcji (np. -greyscale), choć nie jest ona poniżej wspominana ze względu na zwięzłość.

Podstawowe opcje to:

Skalowanie tablicy kwantyzacji dla dostrojenia jakości obrazu. Jakość może przybierać wartości od 0 (najgorsza) do 100 (najlepsza). Wartością domyślną jest 75. (Więcej informacji poniżej).
Tworzenie monochromatycznego pliku JPEG z kolorowego pliku wejściowego. Użyj tej opcji podczas kompresji plików BMP w skali szarości, ponieważ cjpeg nie jest w stanie samodzielnie rozpoznać takiego pliku. Dzięki opcji -grayscale otrzymasz mniejszy plik wyjściowy.
Zoptymalizuj parametry kodowania entropii. Bez tej opcji używane są domyślne parametry. Opcja -optimize powoduje wyprodukowanie mniejszego pliku JPEG, lecz cjpeg działa wolniej i potrzebuje znacznie więcej pamięci. Jakość obrazu i prędkość dekompresji pozostają bez zmian.
Stwórz plik JPEG z przeplotem (patrz niżej).
Plik wejściowy jest w formacie Targa. Pliki Targa zawierające pole "identyfikacji" nie są automatycznie rozpoznawane przez program cjpeg; dla takich plików trzeba użyć opcji -targa by cjpeg traktował te pliki właściwie. Dla większości plików tego typu ta opcja nie będzie potrzebna.

Opcja -quality pozwala na zmniejszanie rozmiaru pliku kosztem jakości obrazu. Im wyższa wartość parametru tej opcji, tym bardziej plik wyjściowy będzie zbliżony jakością do pliku wejściowego. Zazwyczaj powinieneś używać najmniejszej wartości tej opcji, która jeszcze produkuje plik wizualnie nieodróżnialny od oryginału. W tym celu wartość parametru powinna zawierać się pomiędzy 50 a 95. Domyślna wartość 75 przeważnie jest zadowalająca. Jeżeli przy domyślnym ustawieniu (75) jakość obrazu jest niewystarczająca, spróbuj zwiększać wartość o 5 lub 10 za jednym razem, aż uzyskasz zadowalające rezultaty (dla każdego pliku wartość optymalna jest inna).

-quality 100 wygeneruje tablicę kwantyzacji składającą się z samych cyfr 1, minimalizując straty jakości podczas kwantyzacji (wciąż jednak występuje strata przy podpróbkowaniu (subsampling) i zaokrąglaniu (roundoff) ). To ustawienie nadaje się tylko do celów eksperymentalnych. Wartości powyżej 95 nie są zalecane przy normalnym użytkowaniu; rozmiar skompresowanego pliku gwałtownie rośnie przy znikomym wzroście jakości obrazu.

Idąc w drugą stronę, wartości poniżej 50 wyprodukują bardzo mały plik o bardzo niskiej jakości. Wartości około 5 lub 10 mogą być przydatne podczas przygotowywania biblioteki plików graficznych. Na przykład, spróbuj opcji -quality 2 (lub w pobliżu), aby uzyskać zadziwiające efekty kubistyczne. (Notabene: wartości poniżej 25 generują 2-bajtowe tablice kwantyzacji, które w standardzie JPEG są opcjonalne. cjpeg wypisuje ostrzeżenie gdy podasz taką wartość jakości obrazu, ponieważ niektóre dekodery JPEG mogą nie być w stanie zdekompresować takiego pliku, użyj opcji -baseline aby zapewnić kompatybilność przy tak niskich wartościach jakości).

Opcja -progressive tworzy plik JPEG z przeplotem. W pliku tego typu dane są przechowywane jako wiele ekranów o powiększającej się jakości. Jeżeli plik jest transmitowany przez powolne łącze, dekoder może bardzo szybko wyświetlic pierwszy ekran, jako niskojakościową wersję obrazu, następnie podnosząc jakość podczas wyświetlania kolejnych ekranów. Końcowy efekt jest identyczny ze standardowym plikiem JPEG o tym samym ustawieniu jakości. Rozmiar pliku również jest taki sam, a często nieco mniejszy. Uwaga: pliki JPEG z przeplotem nie są jeszcze rozpoznawane przez wiele programów, więc znaczna liczba dekoderów nie będzie w stanie ich wyświetlić.

Opcje dla zaawansowanych użytkowników:

użyj całkowitoliczbowej metody DCT (wartość domyślna).
użyj szybkiej całkowitoliczbowej metody DCT (niższa jakość)
użyj zmiennoprzecinkowej metody DCT. Jest ona odrobinę dokładniejsza niż metoda całkowitoliczbowa, lecz dużo wolniejsza, jeżeli twój komputer nie ma szybkiego koprocesora arytmetycznego. Rezultaty używania tej metody mogą się różnić na rozmaitych komputerach, podczas gdy metoda całkowitoliczbowa powina dawać zawsze te same rezultaty. Szybka metoda całkowitoliczbowa jest dużo mniej dokładna niż dwie pozostałe.
Dołącz do pliku JPEG znacznik restartu co N rzędów MCU (lub co N bloków MCU, jeżeli do liczby jest dołączona litera "B"). -restart 0 (wartość domyślna) oznacza brak znaczników restartu.
Wygładzanie obrazu wejściowego w celu wyeliminowania zakłóceń wynikłych z zastosowania ditheringu. N (od 1 do 100) opisuje poziom wygładzania obrazu. 0 (wartość domyślna) oznacza brak wygładzania.
Nałożenie limitu na ilość pamięci zużywanej podczas przetwarzania dużych obrazów. Wartość liczona jest w tysiącach bajtów bądź w milionach bajtów, jeżeli do liczby dołączona jest litera "M". Na przykład: -max 4m oznacza 4000000 bajtów. Jeżeli wymagana jest większa ilość pamięci, użyte zostaną pliki tymczasowe.
Zapisanie pliku wynikowego pod nazwą "nazwa", zamiast na standardowym wyjściu.
Wypisuj komunikaty diagnostyczne. Im więcej opcji -v tym więcej informacji będzie wypisywanych. Podczas startu programu wypisywana jest również informacja o wersji.
To samo, co -verbose.

Opcja -restart wstawia do pliku znaczniki pozwalające dekoderowi JPEG na zniwelowanie efektów uszkodzenia pliku np. podczas transmisji. Bez znaczników restartu dowolne uszkodzenie pliku spowoduje niemożność wyświetlenia pliku w całości. Gdy w pliku znajdują się znaczniki, pominięta zostanie tylko część pliku znajdująca się pomiędzy uszkodzeniem, a kolejnym znacznikiem. Znaczniki zajmują oczywiście dodatkową przestrzeń w pliku. Zalecane jset używanie opcji -restart 1 dla plików, które mają być transmitowane przez sieci o niskim poziomie transmisji, jak np. Usenet.

Opcja -smooth odfiltrowuje z pliku zakłócenia wpływające na jakość odtworzenia drobnych szczegółów obrazu. Jest ona użyteczna podczas konwersji plików poddanych ditheringowi. Nieduży wpółczynnik wygładzania (10 do 50) usuwa zakłócenia powstałe podczas ditheringu, dzięki czemu wynikowy plik JPEG jest mniejszy i ma lepszą jakość. Zbyt duży współczynnik wygładzania spowoduje rozmycie obrazu.

Opcje dla magików:

Generacja tabel kwantyzacji kompatybilnych z podstawowym standardem JPEG. Powoduje to używanie 8-bitowych wartości kwantyzacji nawet przy niskim ustawieniu jakości obrazu (opcja -quality). Ta opcja jest dosyć nieszczęśliwie nazwana, ponieważ nie zawsze wymusza zgodność z podstawową wersją formatu JPEG. Na przykład, możesz użyć -baseline i -progressive jednocześnie.)
Użyj tablic kwantyzacji zawartych w podanym pliku.
Wybierz tablice kwantyzacji używane dla każdego z kolorów bazowych.
Ustaw współczynnik próbkowania dla każdego z kolorów bazowych.
Do skanowania użyj skryptu (scan script) o podanej nazwie.

Opcje dla "magików" przeznaczone są do eksperymentowania ze standardem JPEG. Jeżeli nie wiesz do czego służą, nie używaj ich. Są one dokładniej opisane w pliku wizard.doc.

PRZYKŁADY

Przykład konwersji pliku PPM o nazwie foo.ppm do pliku foo.jpg ze współczynnikiem jakości 60.

cjpeg -quality 60 foo.ppm > foo.jpg

PODPOWIEDZI

Kolorowe pliki GIF nie są zbyt dobrze kompresowane do standardu JPEG, ponieważ standard ten służy zasadniczo do kompresji plików o 24-bitowym kolorze. W szczególności, nie staraj się kompresować komiksów, grafiki składającej się głównie z linii oraz generalnie obrazów składajacych się z jedynie kilku różnych kolorów. Do tych zastosowań nadaje się format GIF. Jeżeli jednak koniecznie chcesz skompresować plik GIF do formatu JPEG, powinieneś skupić się na doborze wartości dla opcji -quality i -smooth. -smooth 10 często może być pomocne.

Unikaj kilkukrotnej kompresji/dekompresji do/z formatu JPEG, ponieważ straty jakości będą się nawarstwiać. Po około 10 cyklach jakość obrazu wyraźnie spadnie w stosunku do jakości po zaledwie jednym cyklu. Podczas dokonywania zmian w obrazie najlepiej jest używać innego formatu, który używa bezstratnej kompresji.

Opcji -optimize warto używać podczas tworzenia "ostatecznej" wersji do celów archiwizacji lub publikacji (elektronicznej). Dobrym rozwiązaniem jest też używanie niskiego wpółczynnika jakości (-quality) do tworzenia bardzo małych plików JPEG; kompresja daje wtedy znacznie lepsze rezultaty niż dla dużych plików. (Tryb -optimize jest zawsze używany podczas tworzenia plików JPEG z przeplotem).

ŚRODOWISKO

Wartość tej zmiennej stanowi limit pamięci. Sposób określania wartości jest opisany przy opcji -maxmemory. Jeżeli JPEGMEM istnieje, jej wartość ma wyższy priorytet niż wartość ustalona podczas kompilacji. Z kolei jeszcze wyższy priorytet ma opcja -maxmemory.

ZOBACZ TAKŻE

djpeg(1), jpegtran(1), rdjpgcom(1), wrjpgcom(1)
ppm(5), pgm(5)
Wallace, Gregory K. "The JPEG Still Picture Compression Standard", Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44.

AUTOR

Independent JPEG Group

PROBLEMY

Kodowanie arytmetyczne nie jest obsługiwane z przyczyn prawnych.

Pliki wejściowe w formacie GIF nie są już obsługiwane, aby nie naruszać patentu Unisys LZW. Do odczytywania plików GIF użyj programu licencjonowanego przez Unisys (mimo wszystko, konwersja plików GIF do formatu JPEG nie jest zalecana).

Nie są obsługiwane wszystkie wersje plików BMP i Targa.

Opcja -targa to nie błąd, jest ona bardzo pomocna. (Byłaby błędem, gdyby twórcy formatu Targa lepiej go przemyśleli).

Program wciąż nie jest tak szybki, jak byśmy chcieli.

20 marca 1998